/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Usuario;

import Geral.ErroInternoException;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Ivaldo
 */
@Stateless
public class CadastroUsuario {
    
    @EJB
    private IRepositorioUsuario repUsuario;
    
    public CadastroUsuario(){
        
    }
    
    public void adicionar(Usuario u) throws ErroInternoException, UsuarioExistenteException, UsuarioInexistenteException{
        try{
            Usuario u2 = repUsuario.buscarUsuario(u.getId());
            if(u2 != null){
                throw new UsuarioExistenteException();
            }
        }catch(UsuarioInexistenteException e){
            this.repUsuario.adicionar(u);
        }
    }
    
    public Usuario buscarUsuario(long id_usuario) throws UsuarioInexistenteException, ErroInternoException{
        try{
            return this.repUsuario.buscarUsuario(id_usuario);
        }catch(ErroInternoException e){
            throw new ErroInternoException(e);
        }
    }
    
    public void atualizar(Usuario u) throws UsuarioInexistenteException, ErroInternoException{
        this.repUsuario.atualizar(u);
    }
    
    public void remover(long id_usuario) throws ErroInternoException, UsuarioInexistenteException{
        this.repUsuario.remover(id_usuario);
    }
    
    public Usuario loginUsuario(String login, String senha) throws UsuarioInexistenteException, ErroInternoException{
        return this.repUsuario.loginUsuario(login, senha);
    }
    
    public List<Usuario> listaUsuarios(Usuario u) throws ErroInternoException{
        return this.repUsuario.listaUsuario(u);
    }
}
